package com.guyu.app.common.biz.service;

import com.guyu.app.common.pojo.domain.ds.DistrictDO;
import com.mybatisflex.core.service.IService;

import java.util.Collection;
import java.util.List;


public interface DistrictService extends IService<DistrictDO> {

    /**
     * 插入或更新数据
     */
    int insertOrUpdate(DistrictDO districtDO);

    /**
     * 查询行政区
     */
    DistrictDO findByAdcode(String code);

    /**
     * 批量查询行政区
     */
    List<DistrictDO> findByAdcodeIn(Collection<String> codes);

    /**
     * 根据父级编码查询行政区
     */
    List<DistrictDO> findByParentCode(String parentCode);

    /**
     * 根据父级编码批量查询行政区
     */
    List<DistrictDO> findByParentCodeIn(Collection<String> codes);

    /**
     * 根据名称模糊匹配前100条数据
     */
    List<DistrictDO> findByNameLike(String name);

    /**
     * 根据名称和等级查询
     */
    DistrictDO findByNameAndLevel(String name, Integer level);

    /**
     * 根据父级编码和名称查询
     */
    DistrictDO findByParentCodeAndName(String parentCode, String name);

    /**
     * 根据等级查询行政区
     */
    List<DistrictDO> findByLevelIn(Collection<Integer> levels);
}
